Disambiguating touch-input based on variation in pressure along a touch-trail

ABSTRACT

Disclosed is a method and corresponding apparatus or system for disambiguating touch-input based on variation in a characteristic such as speed or pressure along a touch-trail ( 20, 26 ). A computing system may detect a variation in a characteristic of a touch-trail, such as variation in speed of movement of touch along the touch-trail and/or a variation in pressure of touch along the touch-trail (step  52 ). Based on the detected variation, the computing system may determine an intended touch position represented by the trail, such as a landing position or lifting position for instance (step  54 ). And the computing system may take action based at least in part on that determined touch position (step  56 ).

BACKGROUND

Unless otherwise indicated herein, the materials described in thissection are not prior art to the claims and are not admitted to be priorart by inclusion in this section.

One of the most significant advances in the computing field in recentyears has been the advent and widespread deployment of touch-sensitiveinput technology. Such technology is now commonly used to facilitateuser input in countless devices and systems, such as mobile phones,tablet computers, gaming systems, home theater systems, vehicledashboards, and customer kiosks for instance.

Two of the more typical implementations of touch-sensitive inputtechnology are touch screens and touch pads. In general, a touch screenintegrates a touch-sensitive input surface with a display screen, sothat a user can touch and interact directly with displayed indicia inmuch the same way that a user would touch and interact with real-worldobjects such as buttons or the like. A touch pad, on the other hand,typically exists separately from but in association with a displayscreen, and typically functions to allow touch interaction as areplacement for a mouse or other cursor control device for instance.

In practice, a touch-sensitive input surface may employ any of a varietyof mechanisms to sense touch and provide a corresponding output, so thata computing system can then take action in response to the detectedtouch. Examples of such mechanisms include, without limitation resistivesensors, capacitive sensors, and surface acoustic wave sensors.

SUMMARY

Disclosed herein are methods and corresponding devices and systems forprocessing input at a touch-sensitive input surface such as a touchscreen or a touch pad. The disclosure addresses a problem that can occurwhere a user attempts to touch a particular point on an input surfacebut the user's touch ends up being more of a trail, either moving awayfrom the intended touch point (e.g., slipping after touching the correctpoint) or moving toward the intended touch-point (e.g., correcting anerroneous landing on the touch screen).

According to an example method, a computing system will determine one ormore characteristics of a touch-point trail and will use the determinedcharacteristic(s) as a basis to determine the actually intended touchpoint, such as the landing point (where the trail began) or the liftingpoint (where the trail ended), so that the computing system can thentake action based on that touch point.

In practice, the computing system may use one or more of the determinedcharacteristic(s) as a basis to distinguish between at least (i) a slipand (ii) a corrective, and to take action accordingly. For instance, ifthe computing system determines that the trail is a slip, the computingsystem may use the landing point as the intended touch point. Whereas,if the computing system determines that the trail is a corrective, thecomputing system may use the lifting point as the intended touch point.

In one respect, for instance, the example method may involve detecting,by a computing system, a trail of touch input at a touch-sensitive inputsurface, the trail being defined by movement of the touch input from alanding position (where a fingertip, stylus, or other instrument landedon the touch-sensitive input surface) to a lifting position (where thefingertip, stylus, or other instrument then lifted from thetouch-sensitive input surface). Further, the method may involvedetecting, by the computing system, a variation in at least one of (i)speed of the movement of the touch input along the detected trail and(ii) pressure of the touch input along the detected trail. The methodmay then further involve determining, by the computing system, aparticular input-position represented by the detected trail, where thedetermining function is based at least in part on the detected variationin speed and/or movement along the detected trail. Further, theinput-position may be the landing position or the lifting position. Andin turn, the method may then involve generating, by the computingsystem, an output signal based at least in part on the determinedinput-position of the detected trail.

In another respect, disclosed is a non-transitory machine-readablemedium having stored thereon instructions executable by a processor tocarry out various functions. For instance, the functions may includereceiving data representing user input at a touch-sensitive inputsurface, the user input defining a touch-point trail having a lengthextending from a landing point to a lifting point. Further, thefunctions may include determining an input-point represented by thetouch-point trail, where the determining function is based at least inpart on a variation in at least one of (i) speed of movement of the userinput along the length of the touch-point trail and (ii) pressure of theuser input along the length of the touch-point trail. And still further,the functions may include providing output data representing thedetermined input-point.

And in yet another respect, disclosed is a computing system thatincludes an input device having a touch-sensitive input surface, aprocessor, a memory, and code comprising instructions stored at thememory and executable by the processor to carry out various functions.For instance, the functions may include detecting a touch trail at thetouch-sensitive input surface, the touch trail being defined by touchinput moving from a landing position to a lifting position. And thefunctions may include detecting a variation in at least one of (i) speedof movement of the touch input along touch trail and (ii) pressure ofthe touch input along the touch trail. The functions may then includedetermining whether an input-position of the touch trail is the landingposition or is rather the lifting position, where the determiningfunction is based at least in part on the detected variation. And thefunctions may include outputting data representing the determinedinput-position.

These, as well as other aspects, advantages, and alternatives willbecome more apparent to those of ordinary skill in the art by readingthe following detailed description, with reference where appropriate tothe accompanying drawings. Further, it should be understood that thedescription provided in this summary section and elsewhere in thisdocument is intended to serve as an example only.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a depiction of an example touch-trail defining a slip.

FIG. 2 is a depiction of an example touch-trail defining a corrective.

FIG. 3 is a depiction of an example touch-sensitive input surfacecoupled with or integrated with a computing system.

FIG. 4 is a flow chart depicting functions that can be carried outaccording to an example method.

FIG. 5 is another flow chart depicting functions that can be carried outaccording to an example method.

FIG. 6 is another flow chart depicting functions that can be carried outaccording to an example method.

FIG. 7 depicts an example display on a touch-sensitive input surface.

DETAILED DESCRIPTION

In the following detailed description, reference is made to theaccompanying drawings, which form a part hereof. In the drawings,similar symbols typically identify similar components, unless contextdictates otherwise. The illustrative embodiments described in thedetailed description, drawings, and claims are not meant to be limiting.Other embodiments may be utilized, and other changes may be made,without departing from the spirit or scope of the subject matterpresented herein. It will be readily understood that the aspects of thepresent disclosure, as generally described herein, and illustrated inthe drawings, can be arranged, substituted, combined, separated, anddesigned in a wide variety of different configurations, all of which areexplicitly contemplated herein.

As noted above, a touch-sensitive input surface can take various formsand can be used in various contexts and for various purposes. Forinstance, as noted above, the touch-sensitive input surface may take theform of a touch screen or a touch pad and may be integrated with any ofa variety of devices or systems. The particular context and applicationfor the touch-sensitive input surface should not be viewed as limiting,as the present disclosure relates generally to disambiguatingtouch-input provided at any touch-sensitive input surface.

In general, a touch-sensitive input surface is preferably arranged toprovide an output that indicates the position of touch on the surface,so that an associated computing system can determine the position oftouch and take responsive action such as registering a key press,activating a hyperlink, or activating an application or other logic. Inpractice, for instance, the touch-sensitive input surface may bearranged to sense touch in Cartesian coordinate grid system withgranularity defined by the surface technology, and to provide an outputspecifying or indicating the coordinates where the touch occurred. Anassociated computing system may then receive that output and map thecoordinates to currently displayed content or other information so as tofacilitate determining an action to take in response to the touch thatoccurred at that location on the surface.

A user may touch the touch-sensitive input surface with a finger,stylus, or other instrument compatible with the touch-sensitive inputsurface. When a blunt instrument such as a finger is used to touch thesurface, the touch may define a touch area rather than a touch point. Inthat case, the touch-sensitive input-surface may output an array ofcoordinates defining the touch area, and the computing system may treatthe touch as occurring at that area generally or at a representativepoint such as a centroid of that area for instance. On the other hand,when a more narrow instrument such as a stylus is used to touch thesurface, the output may indicate a specific point touched.

In practice, if a user intends to touch a particular point on thetouch-sensitive input surface and the user touches that point and liftsup from the same point, the determination of the touch coordinates isstraightforward. However, if the user touches the intended point and theuser's touch then slips on the surface from that point before lifting,the determination of the touch coordinates is more complicated.Likewise, if the user touches a point slightly off from that intendedand then moves the touch to the intended point before lifting, thedetermination of the touch coordinates is also more complicated. Thepresent disclosure addresses issues such as these.

In particular, the present disclosure provides for detecting a trail oftouch at a touch-sensitive input surface and automatically evaluatingone or more characteristics of the trail as a basis to determine anintended touch-position represented by the trail. In practice, if thetrail is a result of the touch slipping from the intended position (aslip), then the determined touch-position would be the landing position.Whereas, if the trail is a result of the touch moving from an incorrectlanding position to the intended position (a corrective), then thedetermined touch-position would be the lifting position.

FIGS. 1 and 2 illustrate, respectively, examples of a slip and acorrective when a finger 12 is used to touch a touch-sensitive inputsurface 14.

In FIG. 1, a tip of the finger touches an intended position 16 onsurface. After touching the intended position 16, the user may thenremove the fingertip from the surface by flicking the finger upward. Butin doing so as shown, the user's fingertip may slide along the surfaceand lift from the surface at a lifting position 18. As a result, a touchtrail 20 would occur from the intended position 16 to the liftingposition, thereby defining a slip, which is an unintentional trail fromthe intended touch position.

In FIG. 2, on the other hand, the user's fingertip lands on the surfaceat a landing position 22 that is not quite the intended touch position24. Upon landing at the wrong position, the user may then intentionallyslide the fingertip along the surface to the intended position 24. As aresult, a touch trail 26 would occur from the landing position 22 to theintended position 24, thereby defining a corrective, which is anintentional trail to the intended touch position.

There may also be situations where a trail may include both a correctiveand a slip. For instance, after a touch lands on the incorrect position,the user may move the touch along the surface to the intended position(as in FIG. 1), and the user's touch may then slip to another positionbefore lifting from the surface (as in FIG. 2). In that case, thedetermined touch-position may be the position where the corrective endsand where the slip begins.

In practice, the determined touch-position may be a touch point havingparticular coordinates on the touch-sensitive input surface or may be atouch-area having an array of coordinates and/or a representative point(such as a centroid). Or the determined touch-position may take stillother forms.

FIG. 3 next depicts a representative touch-sensitive input surface 14coupled with or integrated with a computing system 28. In thearrangement shown, the touch-sensitive input surface includes a numberof layers 30 disposed over a flat panel display 32 such as LCD or LEDdisplay for instance, thereby establishing a touch screen. In analternative arrangement, as noted above, the touch-sensitive inputsurface could be provided separately from the display 32, as a touch padfor instance.

The touch-sensitive input surface layers 30 may be structured in any ofa variety of ways to sense touch and to provide corresponding output tothe computing system 28. For example, the layers may include atransparent protective layer overlaying a number of transparent layersthat define current driving lines and current sensing lines, with thecurrent sensing lines detecting touch at one or more nodes and providingcorresponding output signals. As another example, the layers may includea transparent protective layer overlaying a transparent electrode layerthat, with individual electrodes and capacitive sensing circuitrydetecting touch at particular positions and providing correspondingoutput signals. And as still another example, the layers may includeacoustic transducers at the edges of the surface, for detecting wavesrefracted as a result of touching at various positions on the surface,and providing corresponding output signals. Numerous other examples arepossible as well and still others are bound to be developed in thefuture.

Furthermore, in addition to sensing position of touch, thetouch-sensitive input surface may be arranged to sense the extent ofpressure of touch. For example, the touch-sensitive input surface mayinclude conductive particles that cause resistance to change inproportion to the extent of pressure, so as to facilitate providing anoutput that indicates the extent of touch pressure. As another example,the touch-sensitive input surface may use force-sensing resistors andpiezoelectric actuators to detect the extent of pressure, so as toprovide an output that likewise indicates the extent of touch pressure.Other examples may be possible as well.

In practice, as touch occurs at a single position on the touch-sensitiveinput surface, the surface may provide output that indicates (e.g.,specifies) the coordinates where the touch occurred and perhaps theextent of pressure of the touch at that position, so that the computingsystem 28 can take action based at least in part on the position touchedand perhaps based on the pressure of the touch. Likewise, as a touchtrail occurs on the touch-sensitive input surface, the surface mayprovide output that indicates the coordinates of each of a sequence oftouch positions along the trail from the start of the trail to the endof the trail, and perhaps for each touch position the extent of pressureof the touch at that position, so that the computing system 28 can takeaction based at least in part on the trail and perhaps based on thepressure of touch along the trail.

As shown in FIG. 3, a representative computing system 28 (such as one ofthe systems noted in the background section above, or any othercomputing system) includes a processor 34 and memory 36, coupled with abus or other mechanism 38 that provides connectivity with thetouch-sensitive input surface 14 and with the display 32. Although thetouch-sensitive input surface 14 and computing system 28 are shownseparately in the figure, they could be integrated together or providedin some other arrangement. For instance, the computing system may beprovided as part of a touch-screen, forming an integral device that canevaluate and report or otherwise respond to touch input. Or thecomputing system could be provided remotely from the touch-sensitiveinput surface and communicatively linked with the touch-sensitive inputsurface by a network or other connection mechanism.

In the example arrangement shown, processor 34 may comprise one or moregeneral purpose processors (e.g., microprocessors) and/or one or morespecial purpose processors (e.g., application specific integratedcircuits and/or digital signal processors). Memory 36 may then compriseone or more volatile and/or non-volatile storage components(non-transitory data storage), such as magnetic, optical, flash, ororganic memory for instance, and may be integrated in whole or in partwith processor 34. The computing system may take various other forms aswell.

As shown, memory 36 may contain code comprising program instructions 40executable by processor 20 to carry out various functions describedherein. Alternatively, some or all of those functions could be carriedout by any other form of logic, such as by hardware and/or firmwarelogic possibly encoded on a chipset integrated with the touch-sensitiveinput surface or other associated component.

By way of example, the program instructions may define a driver 42arranged to process output from the touch-sensitive input surface, so asto enable the computing system to take appropriate action.

In practice, for instance, as a touch occurs at a particular position onthe touch-sensitive input surface 14 and the touch-sensitive inputsurface provides output indicating the touch coordinates, the driver mayreceive that output or a corresponding signal, and the driver mayprocess the output. For example, the driver may map the indicated touchcoordinates to content currently being presented at display 32, so thatthe computing system can take action based at least in part on touchingof or associated with that particular content. Alternatively, the drivermay in some other way process the output from the touch-sensitive inputsurface and provide resulting driver output, or may simply pass throughfor further processing by the computing system the output received fromthe touch-sensitive input surface.

Furthermore, as a touch occurs at a sequence of positions defining atrail on the touch-sensitive input surface 14 and the touch-sensitiveinput surface provides output indicating the sequence of coordinatesdefining the trail such as output that specifies continuously changingcoordinates over time, and perhaps indicating touch pressure at eachtouch-position along the trail, the driver may receive that output or acorresponding signal and may process that output as well. In particular,according to the present disclosure, the driver may evaluate the trailto determine an intended input-position as a touch-position representedby the trail, so that the computing system can then take action based atleast in part on that determined touch-position.

As noted above, the driver can determine the touch-position representedby the trail by determining and evaluating one or more characteristicsof the detected trail. By way of example, the driver can detect avariation in speed of movement and/or pressure of the touch along thetrail and can use that detected variation as a basis to determine atouch-position represented by the trail.

For instance, if the driver detects that the speed of movement of thetouch increases as the touch approaches the end of the trail (e.g., thelifting position), the driver may conclude that the start of the trail(e.g., the landing position) is the relevant touch-position, since anincrease in speed of movement may reflect a slip from the intendedposition. On the other hand, if the driver detects that the speed ofmovement of the touch decreases approaching the end of the trail, thedriver may conclude that the end of the trail is the relevanttouch-position, since the decrease in speed of movement may reflect acorrective movement to an intended position.

Likewise, if the driver detects that the pressure of touch decreasesapproaching the end of the trail, the driver may conclude that the startof the trail is the relevant touch-position, since the decrease inpressure may reflect movement away from the intended position. Whereas,if the driver detects that the pressure of touch increases approachingthe end of the trail, the driver may conclude that the end of the trailis the relevant touch-position, since the increase in pressure mayreflect movement to an intended position.

To facilitate detecting variation in speed of movement of touch alongthe trail, the driver may take sample coordinates of the trail with aconstant time interval between samples, and the driver may compute thedistance traveled along the surface between successive samples. Forinstance, as the trail is created by touch moving from one position toanother, the driver may receive touch position coordinates from thetouch-sensitive input surface at a constant time interval, and thedriver may compute the distance between successive touch points.Alternatively, the driver may record time of receipt of each new touchposition reported by the touch-sensitive input surface so as toprogrammatically plot position versus time for the trail, and the drivermay sample position on that plot at a constant time interval anddetermine distance travelled between successive samples. Given theconstant time interval between samples, a reduction in distance betweenthe sample touch positions along the trail would represent a decrease inspeed of movement of touch along the trail, whereas an increase indistance between the sample touch positions along the trail wouldrepresent an increase in speed of movement of touch along the trail.

To facilitate detecting variation in pressure of touch along the trail,the driver may evaluate touch-pressure values provided by thetouch-sensitive input surface as discussed above for instance, todetermine if the pressure increased as touch approached the end of thetrail or if pressure decreased as touch approached the end of the trailfor example. Alternatively or additionally, the driver may determinepressure of touch along the trail by evaluating one or more othercharacteristics of touch along the trail. For instance, if touch is by afingertip or other malleable instrument, the driver may evaluate thesurface area covered by touch at various positions along the trail andmay correlate the covered surface area with an extent of pressure. Thetheory here is that touch of a malleable instrument with greaterpressure would likely cover a greater surface area, whereas touch of amalleable instrument with less pressure would likely cover less surfacearea. If the touch-sensitive input surface reports an array of points orother indication of touch area along the trail, the driver may thuscompute surface area covered by that touch area along the trail as asurrogate indication of pressure. An increase of touch area along thetrail would represent an increase in pressure along the trail, whereas adecrease in touch area along the trail would represent a decrease inpressure along the trail.

Referring next to FIG. 4, a flow chart is provided to illustratefunctions that can be carried out in accordance with an example method.These functions can be carried out by a computing system such as thatshown in FIG. 3 and described above for instance, and/or by one or moreother machines. Further, these functions can be encoded on anon-transitory machine readable medium (such as data storage 36, or anyother removable or non-removable non-transitory medium) and executableby a processor (such as processor 34).

As shown in FIG. 4, at block 50, the method includes detecting a trailof touch input at a touch-sensitive input surface, the trail beingdefined by movement of the touch input from a landing position to alifting position. At block 52, the method then further involvesdetecting a variation in at least one of (i) speed of the movement ofthe touch input along the detected trail and (ii) pressure of the touchinput along the detected trail. Although blocks 50 and 52 are shown insequential order in the figure, the example method may just as wellinvolve carrying out the functions of those blocks concurrently. Forinstance, as the computing system receives output from thetouch-sensitive input surface 14 reporting touch positions defining atrail, and perhaps pressure of touch at each position, the computingsystem may detect that the sequence of touch positions defines a trailof touch at the surface, and the computing system may concurrentlydetect a variation in speed of movement of the touch along the trailand/or a variation in pressure of the touch along the trail.

At block 54, the method further involves determining an input-positionrepresented by the detected trail, based at least in part on thedetected variation in speed and/or pressure along the trail. As notedabove, for instance, based on the detected variation, the computingsystem may determine that the input-position represented by the detectedtrail is the landing position (e.g., in the case of a slip) or thelifting position (e.g., in the case of a corrective). Alternatively, ina scenario where the trail includes both a corrective and a slip, thecomputing system may determine that the input-position represented bythe trail is a position where the corrective ends and the slip begins.Other examples are possible as well.

In line with the discussion above, for instance, the computing systemmay detect a variation in speed of the movement of the touch input(i.e., touch) along the detected trail and may determine the relevantinput-position based at least in part on that detected variation inspeed. For example, the detected variation in speed may be an increaseof speed approaching the lifting position (e.g., an increase in speed asthe touch moves away from the landing position), in response to whichthe computing system may conclude that the input-position is the landingposition. Or the detected variation in speed may be a decrease in speedapproaching the lifting position (e.g., a decrease in speed as the touchmoves away from the landing position), in response to which thecomputing system may conclude that the input-position is the liftingposition.

Alternatively or additionally, the computing system may detect avariation in pressure of the touch input along the detected trail andmay determine the relevant input-position based at least in part on thatdetected variation in pressure. For example, the detected variation inpressure may be an increase in pressure approaching the lifting position(e.g., an increase in pressure as the touch moves away from the landingposition), in response to which the computing system may conclude thatthe input-position is the lifting position. Or the detected variation inpressure may be a decrease in pressure approaching the lifting position(e.g., a decrease in pressure as the touch moves away from the landingposition), in response to which the computing system may conclude thatthe input-position is the landing position.

Moreover, as further noted above, the computing system can evaluatesurface area of touch along the trail as a surrogate indication ofpressure of touch along the trail, as a basis to detect a variation inpressure of touch along the trail, and thus as a basis to determine therelevant input-position represented by the trail. For instance, thecomputing system may detect that the surface area of touch increasesapproaching the lifting position (e.g., increases as touch moves awayfrom the landing position), in response to which the computing systemmay conclude that the input-position is the lifting position. Or thecomputing system may detect that the surface area of touch decreasesapproaching the lifting position (e.g., decreases as touch moves awayfrom the landing position), in response to which the computing systemmay conclude that the input-position is the landing position.

Note also that the function at block 54 of determining theinput-position can be carried out even before the computing system hasdetecting the full trail. For instance, if speed of movement of thetouch increases substantially enough as the touch moves away from thelanding position, the computing system may conclude that the landingposition is the relevant input-position, without the need to wait forthe trail to end. Likewise, if pressure of touch decreases substantiallyenough as the touch moves away from the landing position, the computingsystem may conclude that the landing position is the relevantinput-position.

Furthermore, note that in some situations, a touch trail on atouch-sensitive input surface may be an intentional gesture or dragmotion rather than a slip or corrective, in which case it may beunnecessary to determine just a particular input position represented bythe trail. To account for this possibility, the computing system mayprogrammatically determine whether the trail is likely a gesture ordrag, and may condition performing the functions of FIG. 4 on firstdetermining that the trail is not likely a gesture or drag.

In practice, the computing system may determine if a trail is a gestureor drag, rather than a corrective or slip, by evaluating the length ofthe trail, evaluating the shape of the trail, and/or evaluating contentcurrently presented on the screen where the trail occurred. For example,if the trail length is greater than a predefined threshold length (suchas the shortest length of a set of defined, allowable gestures), thedriver may programmatically conclude that the trail may be a gesture. Asanother example, if the trail makes more than a threshold turn (ratherthan taking a straight or slightly curved path on the surface), thedriver may programmatically determine that the trail may be a gesture.And as another example, if the trail extends from touching a positionthat corresponds with a draggable object currently presented at thedisplay to another position (such as a logical destination position forthe object), the driver may programmatically determine that the trailmay be a drag.

Whether the computing system applies any of these and/or other criteria,the computing system may be arranged to perform this evaluation as aprecursor or condition to the computing system then determining aninput-position represented by the trail, and thus disambiguating betweena corrective and a slip. That is, upon detecting a trail, the drivercould first determine if the trail is a gesture or drag or is otherwisenot a corrective or slip. If the driver determines that the trail is agesture or drag or is otherwise not a corrective or slip, then thedriver may forgo disambiguating between a corrective and a slip.Whereas, if the driver determines that the trail is a corrective or slipor otherwise not a gesture or drag, then the driver may carry out thepresent method to disambiguate between a corrective and a slip or moreparticularly to determine an input-position represented by the trail, soas to enable the computing system to take action based at least in parton that determined input-position.

Continuing with reference to FIG. 4, at block 56, the computing systemmay then generate an output signal based at least in part on thedetermined input-position of the detected trail. The output signal cantake various forms and can serve various purposes, either internally inthe computing system or outside the computing system. For instance, theoutput signal can include data specifying information to display,application logic to invoke, or the like, or the output signal can moresimply identify the determined input-position or can take some otherform.

In practice, the output signal can trigger a change in operational stateof the computing system, such as (without limitation) invocation of anapplication or other logic, or changing of graphical information thatthe computing system presents at display 32. For instance, based atleast in part on the determined input-position, the computing system maydisplay particular graphical information, such as informationcorresponding with the input-position. As a specific example, in asituation where the touch-sensitive input surface is integrated with adisplay that displays a virtual keyboard including a plurality ofvirtual keys (i.e., displayed keys), if the determined input-position isat a position where a particular one of the virtual keys is displayedand thus corresponds with that virtual key, and if that virtual key isassociated with a particular character (e.g., depicts the particularcharacter and/or when engaged would cause the particular character to bedisplayed or entered), the computing system may display that characterin a text entry field at the display 32. Likewise, even if thetouch-sensitive input surface is separate from a display screen 32, thecomputing system may respond to the determined input-position bydisplaying graphical information based at least in part on thedetermined input-position, possibly also based on a correlation withcurrently displayed content.

FIG. 5 is next another flow chart depicting functions that can becarried out in accordance with an example method. These functions aswell can be carried out by a computing system such as that shown in FIG.3 and described above, and/or by one or more other machines. Further,these functions as well can be encoded on a non-transitory machinereadable medium (such as data storage 36, or any other removable ornon-removable non-transitory medium) and executable by a processor (suchas processor 34).

As shown in FIG. 5, at block 58, the functions include receiving datarepresenting user input at a touch-sensitive input surface, the userinput defining a touch-point trail having a length extending from alanding point to a lifting point. As discussed above, by way of example,this can be done by receiving output from the touch-sensitive inputsurface, indicating a sequence of touch-points that cooperatively definea touch-point trail. For instance, the output from the touch-sensitiveinput surface may define a sequence of touch positions each defining atouch area covering an group of points, and the computing system mayevaluate each such touch position to determine a representative touchpoint such as a centroid of the touch area. As the computing systemreceives a sequence of such touch positions each thus defining atouch-point, the computing system would thereby be receiving user inputthat defines a touch-point trail extending from a landing point to alifting point. Alternatively, each touch-point could itself be a lessgranular touch-area.

At block 60, which may be carried out in parallel with the block 58, thefunctions further include determining an input-point represented by thetouch-point trail, based at least in part on a variation in at least oneof (i) speed of movement of the user input along the length of thetouch-point trail and (ii) pressure of the user input along the lengthof the touch-point trail. This function can be carried out largely asdescribed above for instance.

In turn, at block 62, the functions include providing output data thatrepresents the determined input-point. For instance, a program module(e.g., routine or function) that carries out the functions of blocks 58and 60 may return to a calling module a data value specifying thedetermined input-point, so that the calling module or other logic canthen take action based on the determined input-point. Alternatively oradditionally, the computing system may otherwise output datarepresenting the determined input-point, such as to provide data asdiscussed above or otherwise to other portions of the computing systemor to one or more external devices, and perhaps to trigger a change inoperational state of the computing system or other device based on thedetermined input-point.

As with the example method described above with respect to FIG. 4, thefunctions of FIG. 5 may additionally involve displaying graphicalinformation based at least in part on the determined input-point. Forinstance, the computing system may present or cause to be presented atdisplay 32 a character associated with a virtual key located at thedetermined input-point.

FIG. 6 is yet another flow chart depicting functions that can be carriedout in accordance with an example method. In practice, these functionscan similarly be carried out by a computing system that generallyincludes an input device (such as a touch-screen or touch pad) having atouch-sensitive input surface, a processor, data storage, andinput-position determination logic stored in the data storage andexecutable by the processor to carry out the functions.

As shown in the figure, at block 64, the functions include detecting atouch trail at the touch-sensitive input surface, the touch trail beingdefined by touch input moving from a landing position to a liftingposition. At block 66, which may occur in parallel with block 64, thefunctions further include detecting a variation in at least one of (i)speed of movement of the touch input along touch trail and (ii) pressureof the touch input along the touch trail. At block 68, the functionsthen include determining, based at least in part on the detectedvariation, whether an input-position of the touch trail is the landingposition or is rather the lifting position, in the manner describedabove for instance. And at block 70, the functions include outputtingdata representing the determined input-position. These functions can becarried in largely in the manner discussed above for instance.

In practice, the computing system that carries out the functions of FIG.6 may also include in its data storage response logic that is executableby the processor to change a state of the computing system based atleast in part on the data output by the input-position determinationlogic. For instance, the computing system may map the indicatedinput-position to content currently displayed at display 32 in order todetermine an object or other virtual display content that the usertouched, and the computing system may change the state of the computingsystem in response to the user having touched that virtual displaycontent. By way of example, the computing system may change the displaypresentation to display different content, or the computing system maycarry out any of a variety of other functions. Upon changing displaycontent or carrying out another functions, the computing system wouldhave a new state in which the display content is changed or the otherfunction is being carried out. Other examples are possible as well.

Finally, referring to FIG. 7, there is shown an example of content thatmay be presented on a touch screen, and an example of a touch trail thatmay occur from a landing point to a lifting point on the touch screen.In particular, FIG. 7 depicts at a bottom area of the touch screen avirtual keyboard 72, and a touch trail 74 extending from a landing point76 at the right edge of the “s” key to a lifting point 78 at the leftedge of the “d” key. Further, the figure depicts at the top of the touchscreen a text entry field 80 displaying characters that a user has typedso far on the virtual keyboard.

When a computing system detects a touch trail such as this, at issue forthe system may be whether the intended touch point is over the “s” keyor over the “d” key, and thus whether the system should display in thetext entry field 80 as a next typed character an “s” or a “d”.

Applying an example of the present method, the computing system may makethis determination by evaluating a variation in speed of movement oftouch along the trail 74 from the landing point 72 to the lifting point76, and/or a variation in pressure of touch along the trail from thelanding point to the lifting point.

If the computing system determines that the touch movement speeds upapproaching the lifting point and/or that the pressure of touchdecreases approaches the lifting point, then the computing system maydetermine that the intended touch point is over the “s”, at the landingpoint, as the increase in speed or decrease in pressure may represent aslip from the intended point. Whereas, if the computing systemdetermines that the touch slows down approaching the lifting pointand/or that the pressure of touch increases approaches the liftingpoint, then the computing system may determine that the intended touchpoint is over the “d”, at the lifting point, as the decrease in speed orincrease in pressure may represent a corrective move to the intendedpoint. Based on this determination, the computing system may thendisplay either an “s” or a “d” as the next character in the text entryfield 80.

It may also be possible in the embodiments described above or in otherembodiments for the computing system to dynamically develop and applyvarious threshold characteristics, regarding speed and pressure forinstance, as a basis to determine whether a touch trail is a slip or acorrective. In practice, for instance, there may be characteristicvariations in speed and/or variation in pressure for slips andcorrectives by a particular user or on a particular device, and thecomputing system may identify these characteristic variations byobserving success or failure of touch point determinations over time.

For example, in many cases when a user's touch slips after touching anintended point, the speed of movement of touch may accelerate in aparticular manner (at a particular rate for instance), possibly due toway the user's finger or stylus was being applied. Likewise, in manycases when the user corrects a touch after landing on the wrong point,the speed of movement of the touch may decelerate in a particular mannerapproaching the intended point, with the manner again possibly being dueto the way the user's finger or stylus was being applied. Similarcharacteristic variations in pressure or other metrics may exist aswell.

In practice, when the computing system is faced with a touch trail andthe need to decide whether the landing point or lifting point should betreated as the intended touch point, the computing system may make adecision (in the manner discussed above for example) and take action inresponse.

For instance, with the example shown in FIG. 7, the computing system maydecide that the user touched the “s” key, and the computer may displaythe letter “s” in the text entry field. If the user agrees with thatresult and does not correct the result (e.g., the user does not changethe “s” to a “d”), the computing system may record the variation inspeed and/or pressure associated with the trail 74 and note that thatrecorded variation in speed and/or pressure was indicative of thelanding point being the intended touch point. Considering such a recordor perhaps multiple such records statistically combined over time, thecomputing system may then make a more educated decision to use thelanding point as the intended touch point when later faced with a trailhaving a similar variation in speed and/or pressure.

On the other hand, if the user corrects the decision of the computingsystem, such as by changing the “s” to a “d”, the computing system mayrecord the variation in speed and/or pressure associated with the trail74 and note that that recorded variation in speed and/or pressure wasnot indicative of the landing point being the intended touch point, orthe computing system may simply not record that variation as beingindicative of anything for instance.

While various aspects and embodiments have been disclosed herein, otheraspects and embodiments will be apparent to those skilled in the art.The various aspects and embodiments disclosed herein are for purposes ofillustration and are not intended to be limiting, with the true scopeand spirit being indicated by the claims.

We claim:
 1. A method comprising: detecting, by a computing system, atrail of touch input at a touch-sensitive input surface, the trail beingdefined by movement of the touch input from a landing position to alifting position; responsive to detecting an increase in pressure of thetouch input as it approaches the lifting position, determining, by thecomputing system, that the lifting position is an input positionrepresented by the detected trail; responsive to detecting a decrease inpressure of the touch input as it approaches the lifting position,determining, by the computing system, that the landing position is theinput position represented by the detected trail; and generating, by thecomputing system, based at least in part on the input positionrepresented by the detected trail, an output signal.
 2. The method ofclaim 1, further comprising: detecting, by the computing system, theincrease in pressure or the decrease in pressure by at least detecting acorresponding increase or decrease in surface area of the touch inputalong the detected trail.
 3. The method of claim 1, further comprisingdisplaying, by the computing system, graphical information based atleast in part on the determined input position.
 4. The method of claim3, wherein the touch-sensitive input surface is integrated with adisplay that displays a virtual keyboard including a plurality ofvirtual keys, the input position corresponds to a location of thedisplay at which a particular virtual key from the plurality of virtualkeys is displayed, the particular virtual key is associated with acharacter, and the graphical information comprises the character.
 5. Themethod of claim 3, wherein the touch-sensitive input surface is separatefrom a display screen, and wherein displaying the graphical informationcomprises displaying the graphical information at the display screen. 6.A non-transitory machine-readable medium having stored thereoninstructions executable by a processor to carry out functionscomprising: receiving data representing user input at a touch-sensitiveinput surface, the user input defining a touch-point trail having alength extending from a landing point to a lifting point; responsive todetecting an increase in pressure of the touch input as it approachesthe lifting position, determining that the lifting point is aninput-point represented by the touch-point trail; responsive todetecting a decrease in pressure of the touch input as it approaches thelifting position, determining that the landing point is the input-pointrepresented by the touch-point trail; and providing output datarepresenting the input-point represented by the touch-point trail. 7.The non-transitory machine readable medium of claim 6, wherein thefunctions further comprise: determining the increase in pressure ordecrease in pressure by at least determining a corresponding increase ordecrease in touch-area of the user input.
 8. The non-transitorymachine-readable medium of claim 6, wherein the functions furthercomprise: displaying graphical information based at least in part on thedetermined input-point.
 9. The non-transitory machine-readable medium ofclaim 8, wherein the touch-sensitive input surface displays a virtualkeyboard including a plurality of virtual keys, the input-pointcorresponds a location of the touch-sensitive input surface at which aparticular virtual key from the plurality of virtual keys is displayed,the particular virtual key is associated with a character, and thegraphical information comprises the character.
 10. The non-transitorymachine-readable medium of claim 8, wherein the touch-sensitive inputsurface is embodied in a touch-screen, and wherein displaying thegraphical information comprises displaying the graphical information onthe touch-screen.
 11. The non-transitory machine-readable medium ofclaim 8, wherein the touch-sensitive input surface is embodied in atouch-pad separate from a display screen, and wherein displaying thegraphical information comprises displaying the graphical information atthe display screen.
 12. A computing system comprising: an input devicehaving a touch-sensitive input surface; a processor; a memory; and codecomprising instructions stored at the memory and executable by theprocessor to carry out functions comprising: detecting a touch trail atthe touch-sensitive input surface, the touch trail being defined bytouch input moving from a landing position to a lifting position;responsive to detecting an increase in pressure of the touch input as itapproaches the lifting position, determining that the lifting positionis an input position represented by the touch trail; responsive todetecting a decrease in pressure of the touch input as it approaches thelifting position, determining that the landing position is the inputposition represented by the touch input; and outputting datarepresenting the input position.
 13. The computing system of claim 12,wherein the functions further comprise: changing, based on the datarepresenting the input position, a state of the computing system.